1. Technical Field
The invention relates to the encryption of data in a computer environment. More particularly, the invention relates to the encryption of data codewords intended for reception and decryption by another entity while preserving the error correction capabilities of the original data.
2. Description of the Prior Art
Error correction methods are commonly used in data transmission channels and data storage devices such as Compact Disc (CD), Digital Video Disc (DVD), Digital Data Storage (DDS), and Digital Video Cassette (DVC) to maintain data integrity. These methods correct errors due to anomalies such as media defects and noise. A typical storage device application performs error correction on data, using the processor onboard the drive, prior to transmission to a host processor.
One approach to reducing the cost of the storage drive is to remove the error correction algorithm from the drive itself and to perform that function in a host computer. In more recent storage systems, the circuitry required to perform error correction on a drive is substantial. It requires expensive static Random Access Memory (RAM) and significant processing power. It is possible to perform error correction of the stored data in the host processor using software, rather than in the drive.
This approach is particularly attractive in applications where there are no requirements for an uninterrupted data stream. The processing power required for error correction varies dramatically with the number of errors to be corrected in a given block. However, the probability of a large number of errors occurring in a block is very low. Therefore, even a less powerful host processor may be able to correct a small number of errors on the fly, and in the infrequently occurring situation of a large number of errors occurring, can halt the data flow and perform error correction in an iterative manner.
There is an increasing pressure in the industry to encrypt or scramble data, typically to prevent the unauthorized copying of the proprietary data. For purposes of this discussion herein, the terms encrypt and scramble are used interchangeably. Some schemes propose to encrypt all or some of the data prior to releasing it on the computer bus. This is accomplished by using an encryption key that is negotiated between the drive and a trusted entity, such as an Moving Pictures Experts Group (MPEG) decoder. Typical to this type of encryption or scrambling schemes is that does not preserve the integrity of error correction codewords and require that error correction be performed in the drive prior to encryption or scrambling therefore precluding the host processor from performing the error correction task.
It would be advantageous to provide an encryption scheme that encrypts data while preserving the integrity of error correction codewords, because this would allow error correction of confidential data to be performed by e.g. host computer without making access available to the confidential data. It would further be advantageous to provide an encryption scheme that is easily implemented without creating a significant burden on either the storage drive or on a trusted entity (e.g. an entity that is required to effect decryption.)